print('I\'m \"OK\"!')

print('I\'m ok.')

print('I\'m learning\nPython.')

print('\\\n\\')

print('''line1
...line2
...line3''')

print(r'''hello,
world''')

print('hello,\nworld')

print(True)

print(3<2)

print(True and False)

print(True or False)

print(not True)

# age = int(input())
age = 18

if age >= 18:
    print('adult')
else:
    print('teenager')

a = 123
print(a)
a = 'ABC'
print(a)

b = a
a = 'XYZ'
print(b)

print(10/3)
print(9/3)
print(10//3)
print(10 % 3)

print('包含中文的str')

# ord()函数获取字符的整数表示
print(ord('A'))
print(ord('中'))
# chr()函数把编码转换为对应的字符
print(chr(66))
print(chr(25991))
# 十六进制
print('\u4e2d\u6587')
# bytes类型的数据用带b前缀的单引号或双引号表示
# 通过encode()方法可以编码为指定的bytes
print('ABC'.encode('ascii'))
print('中文'.encode('utf-8'))
# print('中文'.encode('ascii'))   中文编码的范围超过了ASCII编码的范围
# 把bytes变为str，就需要用decode()
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))
# print(b'\xe4\xb8\xad\xff'.decode('utf-8'))    bytes中包含无法解码的字节，decode()方法会报错
# 传入errors='ignore'忽略错误的字节
print(b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore'))
# 计算str包含多少个字符，可以用len()函数
print(len('ABC'))
print(len('中文'))
# 换成bytes，len()函数就计算字节数
print(len(b'ABC'))
print(len(b'\xe4\xb8\xad\xe6\x96\x87'))
print(len('中文'.encode('utf-8')))
# 采用的格式化方式和C语言是一致的，用%实现
print('Hello, %s' % 'world')
print('Hi, %s. You have$%d.' % ('Letquit', 10000))
# 格式化整数和浮点数还可以指定是否补0和整数与小数的位数
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
# 如果你不太确定应该用什么，%s永远起作用，它会把任何数据类型转换为字符串
print('Age: %s. Gender: %s' % (18, True))
# %%来表示一个%
print('growth rate: %d%%' % 5)
# 使用字符串的format()方法，它会用传入的参数依次替换字符串内的占位符{0}、{1}...\
print('Hi, {0}. 基金上涨了 {1:.2f}%'.format('用户', 8.025))
# 使用以f开头的字符串，称之为f-string，它和普通字符串不同之处在于，字符串如果包含{xxx}，就会以对应的变量替换
r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')

s1 = 72
s2 = 85
n = (s2-s1) / s1
print('%.2f%%' % r)

